package com.copm.ifm.base.basic.enums;

import lombok.Getter;
import org.springframework.http.HttpStatus;

/**
 * 错误码枚举类
 * TODO 如果有必要，还需要考虑i18n
 *
 * @author zzf
 * @date 2020/6/29 15:43
 */
public enum ResponseCodeEnum {

    //操作成功
    SUCCESS(200, "操作成功！"),
    //操作失败
    FAIL(500, "操作失败！"),
    //参数错误
    PARAM_ERROR(400, "参数错误！"),
    //权限不足
    AUTH_ERROR(401, "权限不足！"),

    //系统异常 500 服务器的内部错误
    EXCEPTION(500, "服务器开小差，请稍后再试"),

    //非法请求
    ILLEGAL_REQUEST(500, "非法请求"),

    //权限不足
    REPEAT_REQUEST(600, "重复请求，请稍后再试！"),

    //404 Web 服务器找不到您所请求的文件或脚本。请检查URL 以确保路径正确。
    NOT_FOUND(404, String.format("哎呀，无法找到这个资源啦(%s)", HttpStatus.NOT_FOUND.getReasonPhrase())),

    //405 对于请求所标识的资源，不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的 MIME 类型。
    METHOD_NOT_ALLOWED(405, String.format("请换个姿势操作试试(%s)", HttpStatus.METHOD_NOT_ALLOWED.getReasonPhrase()));

    @Getter
    private final Integer code;

    @Getter
    private final String desc;

    ResponseCodeEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }
}
